User-based network onboarding

ABSTRACT

A request related to an access to a network by a first user device may be received. The user device may be included in a plurality of user devices associated with a first first-level security profile assigned to the user. An application extension to an application executing on the first user device may be accessed in response to the request related to the access. A network connectivity file may be provided to the application extension. The network connectivity file may include network configuration information for the first user device. The network configuration information may be associated with a first second-level security profile assigned to the first user device. Instructions to configure the first user device to access the network based at least in part on the network configuration information in the network connectivity file may be provided.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 15/977,310, filed May 11, 2018, now U.S. Pat. No.10,320,847, which is a continuation application of U.S. patentapplication Ser. No. 15/480,273, filed Apr. 5, 2017, now U.S. Pat. No.10,003,615, which is a continuation application of U.S. patentapplication Ser. No. 15/183,753, filed Jun. 15, 2016, now U.S. Pat. No.9,686,319, which is a continuation application of U.S. patentapplication Ser. No. 14/868,347, filed Sep. 28, 2015, now U.S. Pat. No.9,479,540, which is a continuation application of U.S. patentapplication Ser. No. 14/180,297, filed Feb. 13, 2014, now U.S. Pat. No.9,152,782, which claims priority to U.S. Provisional Patent ApplicationNo. 61/916,088, filed Dec. 13, 2013, all of which are incorporatedherein by reference.

BACKGROUND

Computer networks play an important part of many informationinfrastructures. Computer networks typically allow devices to exchangedata with one another. A computer network may include data connectionsto allow devices to provide data to one another. Networks links maycouple points of the computer network through a variety of media,including wired media and wireless media. Computer networks continue tobecome faster and more reliable ways to transfer and share information.Organizations have come to rely on the speed and reliability of computernetworks to provide members with the ability to exchange information,resources, and other items of interest with each other and with theoutside world.

It is important to ensure network access secure and convenient for anorganization's members and for the organization itself. For example, anorganization may wish to ensure users only access the organization'snetwork using devices that are sufficient secure. The organization mayneed to verify the security of devices of users brought to theorganization's network. Similarly, the organization may need to verifythe security of devices the organization has issued to users. Makingsure security processes are not inconvenient for users has provendifficult.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of a user-based network onboarding environment,in accordance with an implementation.

FIG. 2 shows a user-based network onboarding system, in accordance withan implementation, in accordance with an implementation.

FIG. 3 shows an example of a flowchart of a method for performinguser-based network onboarding of user devices, in accordance with animplementation,

FIG. 4 shows an example of a device identification engine, in accordancewith an implementation.

FIG. 5 shows an example of a flowchart of a method for selecting adevice for network onboarding, in accordance with an implementation.

FIG. 6 shows an example of a device identification engine, in accordancewith an implementation.

FIG. 7 shows an example of a flowchart of a method for selecting adevice for network onboarding, in accordance with an implementation.

FIG. 8 shows an example of a device network configuration engine, inaccordance with an implementation.

FIG. 9 shows an example of a flowchart of a method for selecting adevice for network onboarding, in accordance with an implementation.

FIG. 10 shows an example of a screen for selecting a device for networkauthentication, in accordance with an implementation.

FIG. 11 shows an example of a computer system, in accordance with animplementation.

SUMMARY

A request related to an access to a network by a first user device maybe received. The user device may be included in a plurality of userdevices associated with a first first-level security profile assigned tothe user. An application extension to an application executing on thefirst user device may be accessed in response to the request related tothe access. A network connectivity file may be provided to theapplication extension. The network connectivity file may include networkconfiguration information for the first user device. The networkconfiguration information may be associated with a first second-levelsecurity profile assigned to the first user device. Instructions toconfigure the first user device to access the network based at least inpart on the network configuration information in the networkconnectivity file may be provided.

DETAILED DESCRIPTION

FIG. 1 shows an example of a user-based network onboarding environment100, in accordance with an implementation. In the example of FIG. 1, theuser-based network onboarding environment 100 includes user devices105-1 through 105-N (user devices 105), a local area network (LAN)network access system 115, a LAN 120, a trusted resource system 125, awide area network (WAN) access system 130, a mobile device managementsystem 135, a wide area network 140, a user-based network onboardingsystem 145, and an untrusted resource system 150. In the example of FIG.1, the user devices 105, the LAN network access system 115, the LAN 120,and the trusted resource system 125 reside within a trusted network 155.In this example, the mobile device management system 135, the WAN 140,the user-based network onboarding system 145, and the untrusted resourcesystem 150 reside within an untrusted network 160.

In the example of FIG. 1, the user devices 105 are coupled to the LANnetwork access system 115. One or more of the user devices 105 caninclude a station. A “station,” as used in this paper, may refer to adevice with a media access control (MAC) address and a physical layer(PHY) interface to a wireless medium complying with the IEEE 802.11standard. Thus, for example, stations and a wireless access point (WAP)with which the stations associate can be referred to as stations, ifapplicable. IEEE 802.11a-1999, IEEE 802.11b-1999, IEEE 802.11g-2003,IEEE 802.11-2007, and IEEE 802.11n TGn Draft 8.0 (2009) are incorporatedby reference. A system that is 802.11 standards-compatible or 802.11standards-compliant, as used in this paper, may comply with at leastsome of one or more of the incorporated documents' requirements and/orrecommendations, or requirements and/or recommendations from earlierdrafts of the documents, and includes Wi-Fi systems. Wi-Fi is anon-technical description, which is generally correlated with the IEEE802.11 standards, as well as Wi-Fi Protected Access (WPA) and WPA2security standards, and the Extensible Authentication Protocol (EAP)standard. In alternative implementations, a station may comply with adifferent standard than Wi-Fi or IEEE 802.11, may be referred to assomething other than a “station,” and may have different interfaces to awireless or other medium.

In a specific implementation, the user devices 105 access resourcesprovided through the LAN 120 and the LAN network access system 115. Forinstance, the user devices 105 can access the trusted resource system125, described further herein, through the LAN 120 and the LAN networkaccess system 115. In an implementation, the user devices 105 accessresources through the WAN 140, LAN network access system 115, and/or theWAN access system 130. More specifically, the user devices 105 canaccess the untrusted resource system 150 through the WAN 140, LANnetwork access system 115, and/or the WAN access system 130.

In the example of FIG. 1, each of the user devices 105 includerespective network agent engines 110-1 through 110-N (network agentengines 110). In a specific implementation, the network agent engines110 are implemented as at least a portion of an application executing onthe user devices 105. In another implementation, the network agentengines 110 are implemented as part (e.g., an extension, a plugin, etc.)of a network browser (e.g., an Internet browser). In yet anotherimplementation, the network agent engines 110 are part of the operatingsystem of the user devices 105. In an implementation, the network agentengines 110 can allow the user devices 105 to access network resources,such as the trusted resource system 125 and/or the untrusted resourcesystem 150. The network agent engines 110 can allow the user devices 105to display webpages or other graphical depictions of network resources,in various implementations.

In a particular implementation, the network agent engines 110 mayinclude an “engine” and a “datastore,” as discussed in this paper. Anengine, as used in this paper, includes a dedicated or shared processorand, typically, firmware or software modules executed by the processor.Depending upon implementation-specific or other considerations, anengine can be centralized or its functionality distributed. An enginecan include special purpose hardware, firmware, or software embodied ina computer-readable medium for execution by the processor.

A datastore, as used in this paper, can be implemented, for example, assoftware embodied in a physical computer-readable medium on a general-or specific-purpose machine, in firmware, in hardware, in a combinationthereof, or in an applicable known or convenient device or system.Datastores in this paper are intended to include any organization ofdata, including tables, comma-separated values (CSV) files, traditionaldatabases (e.g., SQL), or other applicable known or convenientorganizational formats. Datastore-associated components, such asdatabase interfaces, can be considered “part of” a datastore, part ofsome other system component, or a combination thereof, though thephysical location and other characteristics of datastore-associatedcomponents is not critical for an understanding of the techniquesdescribed in this paper. Datastores can include data structures. As usedin this paper, a data structure is associated with a particular way ofstoring and organizing data in a computer so it can be used efficientlywithin a given context. Data structures are generally based on theability of a computer to fetch and store data at any place in itsmemory, specified by an address, a bit string that can be itself storedin memory and manipulated by the program. Thus, some data structures arebased on computing the addresses of data items with arithmeticoperations; while other data structures are based on storing addressesof data items within the structure itself. Many data structures use bothprinciples, sometimes combined in non-trivial ways. The implementationof a data structure usually entails writing a set of procedures forcreating and manipulating instances of that structure.

In a specific implementation, the network agent engines 110 control howthe user devices 105 access network resources. More specifically, thenetwork agent engines 110 can determine what resources the user devices105 are allowed to access. For instance, the network agent engines 110control whether the user devices 105 are allowed to access any of thetrusted resource system 125 and/or the untrusted resource system 150.The network agent engines 110 can also control whether particular usersof the user devices 105 are allowed to access portions of the trustedresource system 125 and/or the untrusted resource system 150.

In some implementations, the network agent engines 110 may implementother security techniques on the user devices 105. For example, in animplementation, the network agent engines 110 makes sure the userdevices 105 are adequately protected from unauthorized users orunauthorized usages. That is, in this implementation, the network agentengines 110 require the user devices 105 to be protected by password,biometric authentication techniques, or other techniques. As anotherexample, the network agent engines 110 may make sure the user devices105 cannot access specific websites (e.g., blacklisted websites) or canaccess only specific websites (e.g., whitelisted websites). As yetanother example, the network agent engines 110 may limit the types ofapplications the user devices 105 are allowed to install and/or execute.More specifically, the network agent engines 110 may not allow the userdevices 105 to install and/or execute blacklisted applications, or mayallow the user devices 105 to only install and/or execute whitelistedapplications. The network agent engines 110 may or may not implementfeatures of a mobile device management (MDM) policy not enumeratedherein.

In the example of FIG. 1, the LAN network access system 115 is coupledto the user devices 105 and the LAN 120. In an implementation, the LANnetwork access system 115 is coupled to each of the network agentengines 110 in the user devices 105. The LAN network access system 115can provide, in various implementations, access to the LAN 120 and/orthe WAN 140. In an implementation, the LAN network access system 115 canbe implemented as one or more of a network access point, a gateway, aswitch, a router, and a bridge. In some implementations, the LAN networkaccess system 115 is implemented as: a wireless network access point tosupply wireless network access to the LAN 120 and/or the WAN 140; and/ora wired access point to supply wired network access to the LAN 120and/or the WAN 140. In some implementations, the LAN network accesssystem 115 is administered by the user-based network onboarding system145. In various implementations, the LAN network access system 115 mayreceive instructions from the user-based network onboarding system 145to onboard more than one of the user devices 105, as discussed furtherin this paper to the trusted resource system 125 and/or the untrustedresource system 150.

In specific implementations, the LAN network access system 115, themobile device management system 135, the user-based network onboardingsystem 145, or some combination thereof, controls the MDM policy. In animplementation in which updates are available, the MDM policy can beconfigured, for example, to manually update, to update at apredetermined interval, such as periodically, or to update in some otherfashion. For example, the MDM policy can be configured to update at therequest of an administrator of the user-based network onboarding system145. In a specific implementation, the network agent engines 110 receiveinstructions from the user-based network onboarding system 145 toonboard the user devices 105 to network resources, as discussed in thispaper.

In the example of FIG. 1, the LAN 120 is coupled to the LAN networkaccess system 115, the trusted resource system 125, and the WAN accesssystem 130. In a specific implementation, the LAN 120 may provide anetwork linking the user devices 105 to each other, to the trustedresource system 125, and/or to the WAN 140. In some implementations, theLAN 120 is administered by the network administrator who is associatedwith the user-based network onboarding system 145 and/or is charged withadministering network and other policies for the trusted resource system125.

In a specific implementation, the LAN 120 includes a wired network usingwires for at least some communications. In some implementations, the LAN120 comprises a wireless network. A “wireless network,” as used in thispaper may include any computer network communicating at least in partwithout the use of electrical wires. In various implementations, the LAN120 includes technologies such as Ethernet, 802.11, worldwideinteroperability for microwave access (WiMAX), 3G, 4G, CDMA, GSM, LTE,digital subscriber line (DSL), etc. The LAN 120 can further includenetworking protocols such as multiprotocol label switching (MPLS),transmission control protocol/Internet protocol (TCP/IP), User DatagramProtocol (UDP), hypertext transport protocol (HTTP), simple mailtransfer protocol (SMTP), file transfer protocol (FTP), and the like.The data exchanged over the LAN 120 can be represented usingtechnologies and/or formats including hypertext markup language (HTML)and extensible markup language (XML). In addition, all or some links canbe encrypted using conventional encryption technologies such as securesockets layer (SSL), transport layer security (TLS), and InternetProtocol security (IPsec).

In a specific implementation, the wireless network of the LAN 120 iscompatible with the 802.11 protocols specified by the Institute ofElectrical and Electronics Engineers (IEEE). The LAN 120 may becompatible with one or more stations, such as the user devices 105,discussed herein.

In a specific implementation, the wireless network of the LAN 120 iscompatible with the 802.3 protocols specified by the IEEE. In someimplementations, IEEE 802.3 compatible protocols of the LAN 120 mayinclude local area network technology with some wide area networkapplications. Physical connections are typically made between nodesand/or infrastructure devices (hubs, switches, routers) by various typesof copper or fiber cable. The IEEE 802.3 compatible technology cansupport the IEEE 802.1 network architecture of the LAN 120. Thesestandards provide the basis for wireless network products using theWi-Fi brand. IEEE 802.1 and 802.3 are incorporated by reference.

In the example of FIG. 1, the trusted resource system 125 is coupled tothe LAN 120. In a specific implementation, the trusted resource system125 may include one or more engines and/or datastore containing trustedresources. “Trusted resources,” as discussed herein, may refer to anynetwork resources that are available to non-administrative users of theLAN 120 but not to non-administrative users of the WAN 140. Trustedresources can include network resources that are protected by securityprotocols of the trusted network 155. Trusted resources can include anyresources protected by the functionalities of the WAN access system 130.In various implementations, the trusted resource system 125 providesaccess portions of private networks, enterprise networks, virtual publicnetworks (VPNs), etc. In an implementation, the trusted resource system125 is administered by the same administrative entity administering theuser-based network onboarding system 145. Examples of trusted resourcesinclude websites, databases, applications, content, etc. on an Intranetwithin the trusted network 155.

In the example of FIG. 1, the WAN access system 130 is coupled to theLAN 120 and the WAN 140. In a specific implementation, the WAN accesssystem 130 couples the portions of the trusted network 155 to theportions of the untrusted network 160. More specifically, the WAN accesssystem 130 can couple the LAN 120 to the WAN 140. This can have theeffect of coupling the user devices 105, the LAN network access system115, and the trusted resource system 125 to the mobile device managementsystem 135, the untrusted resource system 150, and the user-basednetwork onboarding system 145. In various implementations, the WANaccess system 130 is implemented as one or more of a gateway, a switch,a router, and a bridge providing access to the WAN 140. In someimplementations, the WAN access system 130 is administered by thenetwork administrator who is associated with the user-based networkonboarding system 145 and/or is charged with administering network andother policies for the trusted network 155.

Though FIG. 1 shows the LAN network access system 115 as distinct fromthe WAN access system 130, in various implementations, thefunctionalities of the LAN network access system 115 and the WAN accesssystem 130 may be interchanged or consolidated into a single system.More specifically, in some implementations, the LAN network accesssystem 115 provides direct access to the WAN 140. In theseimplementations, the LAN network access system 115 can nonetheless beassociated with the trusted network 155 and administered by the networkadministrator who is associated with the user-based network onboardingsystem 145 and/or is charged with administering network and otherpolicies for the trusted network 155.

In the example of FIG. 1, the mobile device management system 135 iscoupled to the WAN 140. In a specific implementation, the mobile devicemanagement system 135 provides mobile device management services for theuser devices 105. More specifically, the mobile device management system135 can interface with the network agent engines 110 to control how theuser devices 105 access network resources. In some implementations, themobile device management system 135 determines what resources the userdevices 105 are allowed to access (e.g., the trusted resource system125, the untrusted resource system 150, portions of the LAN 120,portions of the WAN 140, etc.). In these implementations, the mobiledevice management system 135 further configures the network agentengines 110 to provide or deny access to these resources.

In a particular implementation, the mobile device management system 135controls other security features of the network agent engines 110. Forexample, the mobile device management system 135 can control whether theuser devices 105 are to be password protected, biometricallyauthenticated, etc., before the user devices 105 are allowed to haveaccess to resources. The mobile device management system 135 maydetermine specific blacklisted or whitelisted websites and/orapplications the user devices 105 are or are not allowed to have accessto. The mobile device management system 135 may further determine thetypes of applications and the specific applications the user devices 105are or are not allowed to install and/or execute. In an implementation,the mobile device management system 135 may control other parts of anMDM policy not provided for herein. In various embodiments, the mobiledevice management system 135 may provide updates to the MDM policy atvarious intervals, such as periodically, at the request of anadministrator, or manually.

In the example of FIG. 1, the WAN 140 is coupled to the WAN accesssystem 130, the mobile device management system 135, the untrustedresource system 150, and the user-based network onboarding system 145.In a specific implementation, the WAN 140 includes a networked systemincluding several computer systems coupled together, such as theInternet, or a device for coupling components of a single computer, suchas a bus. The term “Internet” as used in this paper refers to a networkof networks using certain protocols, such as the TCP/IP protocol, andpossibly other protocols such as the hypertext transfer protocol (HTTP)for hypertext markup language (HTML) documents making up the World WideWeb (the web). Content is often provided by content servers, which arereferred to as being “on” the Internet. A web server, which is one typeof content server, is typically at least one computer system whichoperates as a server computer system and is configured to operate withthe protocols of the web and is coupled to the Internet. The physicalconnections of the Internet and the protocols and communicationprocedures of the Internet and the web are well known to those of skillin the relevant art. For illustrative purposes, it is assumed the WAN140 broadly includes, as understood from relevant context, anything froma minimalist coupling of the components illustrated in the example ofFIG. 1, to every component of the Internet and networks coupled to theInternet. In some implementations, the WAN 140 is administered by aservice provider, such as an Internet Service Provider (ISP).

In various implementations, the WAN 140 may include technologies such asEthernet, 802.11, worldwide interoperability for microwave access(WiMAX), 3G, 4G, CDMA, GSM, LTE, digital subscriber line (DSL), etc. TheWAN 140 may further include networking protocols such as multiprotocollabel switching (MPLS), transmission control protocol/Internet protocol(TCP/IP), User Datagram Protocol (UDP), hypertext transport protocol(HTTP), simple mail transfer protocol (SMTP), file transfer protocol(FTP), and the like. The data exchanged over the WAN 140 can berepresented using technologies and/or formats including hypertext markuplanguage (HTML) and extensible markup language (XML). In addition, allor some links can be encrypted using conventional encryptiontechnologies such as secure sockets layer (SSL), transport layersecurity (TLS), and Internet Protocol security (IPsec).

In the example of FIG. 1, the user-based network onboarding system 145is coupled to the WAN 140. In a specific implementation, the user-basednetwork onboarding system 145 authenticates access of the user devices105 to network resources. As examples, the user-based network onboardingsystem 145 can authenticate access of the user devices 105 to thetrusted resource system 125 and/or the untrusted resource system 150.

In an implementation, the user-based network onboarding system 145performs onboarding and/or offboarding of the user devices 105.“Onboarding,” as used in this paper, may refer to adding new devices toaccess network resources. The onboarding performed by the user-basednetwork onboarding system 145 may include verifying the user devices 105are sufficiently secured and/or compliant with requirements of themobile device management system 135 to access the trusted resourcesystem 125, the untrusted resource system 150 through the LAN networkaccess system 115 and/or the WAN access system 130. “Offboarding,” asused in this paper, may refer to removing devices from the set ofdevices allowed to access the network resources.

In a specific implementation, the user-based network onboarding system145 performs user-based onboarding. More specifically, the user-basednetwork onboarding system 145 can maintain a web portal, such as awalled garden environment where users onboard their own devices. In animplementation, the user devices 105 can be redirected to the walledgarden environment whenever the user devices 105 access the LAN accesssystem 115. The walled garden environment can then verify whether theuser devices 105 were previously or should in the future be onboarded toaccess network resources. In an implementation, the user-based networkonboarding system 145 can onboard a first user device associated with auser (e.g., the user device 105-1) and can create a first-level securityprofile for the user based on information supplied by the user. Afirst-level security profile, as used, herein, may refer to informationused to identify the user. Though this paper uses the term “user” inconjunction with the first-level security profile, it is noted that thefirst-level security profile may identify, in various implementations, aperson, a group of people, a subscriber station of the LAN 120, a groupof subscriber stations of the LAN 120, etc.

In an implementation, the user-based network onboarding system 145identifies other devices associated with the user. For example, the usercan enter the identities of other devices (e.g., the user's own devicesbrought into the user-based network onboarding environment 100 for use)into the web portal. As another example, the user-based networkonboarding system 145 can automatically find all devices (e.g., companyissued devices) associated with the user. The user-based networkonboarding system 145 may assign second-level security profiles for eachof the user's devices (e.g., the user devices 105). A second-levelsecurity profile, as used herein, may refer to information used toidentify one of the user devices 105. The second-level security profilemay also identify other attributes of the one of the user devices 105.For instance, the second-level security profile may include deviceinformation (e.g., hardware configurations, software configurations,etc.), network information (e.g., network configurations), and otherinformation about one of the user devices 105. In an implementation,each of the second-level security profiles may provide networkconfiguration information so that the user devices 105 can be onboardedto the trusted resource system 125 and/or the untrusted resource system150. The user-based network onboarding system 145 can also assign otherlevels of security profiles (e.g., third-level security profiles,fourth-level security profiles, etc.) as required to onboard the userdevices 105. In an implementation, the onboarding by the user-basednetwork onboarding system 145 is performed on a browser-based device.The user-based network onboarding system 145, and the engines therein,are further discussed in the context of FIGS. 2-10.

In the example of FIG. 1, the untrusted resource system 150 is coupledto the WAN 140. In a specific implementation, the untrusted resourcesystem 150 may include one or more engines and/or datastore containinguntrusted resources. “Untrusted resources,” as discussed herein, mayrefer to any network resources that are generally available to users ofthe WAN 140 and are not protected by security protocols of the trustednetwork 155. Examples of untrusted resources include websites,databases, applications, content, etc. that a user can navigate to usingthe Internet.

FIG. 2 shows a user-based network onboarding system 200, in accordancewith an implementation. In the example of FIG. 2, the user-based networkonboarding system 200 includes a network access system management engine210, a network access system management datastore 215, a mobile devicemanagement interface engine 220, a mobile device management interfacedatastore 225, a device selection engine 230, a device selectiondatastore 235, a security profile engine 240, a security profiledatastore 245, a device network configuration engine 250, and a devicenetwork configuration datastore 255.

In a specific implementation, one or more of the network access systemmanagement engine 210, the network access system management datastore215, the mobile device management interface engine 220, the mobiledevice management interface datastore 225, the device selection engine230, the device selection datastore 235, the security profile engine240, the security profile datastore 245, the device networkconfiguration engine 250, and the device network configuration datastore255 includes an “engine,” as discussed herein. In a specificimplementation, one or more of the network access system managementengine 210, the network access system management datastore 215, themobile device management interface engine 220, the mobile devicemanagement interface datastore 225, the device selection engine 230, thedevice selection datastore 235, the security profile engine 240, thesecurity profile datastore 245, the device network configuration engine250, and the device network configuration datastore 255 includes a“datastore,” as discussed herein.

In the example of FIG. 2, the computer-readable medium 205 is coupled tothe network access system management engine 210, the network accesssystem management datastore 215, the mobile device management interfaceengine 220, the mobile device management interface datastore 225, thedevice selection engine 230, the device selection datastore 235, thesecurity profile engine 240, the security profile datastore 245, thedevice network configuration engine 250, and the device networkconfiguration datastore 255. In various implementations, thecomputer-readable medium 205 includes a coupling system that comprisesanything from a device for coupling together components of a singlecomputer, such as a bus, to a networked system that includes severalcomputer systems coupled together, such as the Internet. It is noted thecomputer-readable medium 205 can broadly include, as understood fromrelevant context, anything from a minimalist coupling of the componentsillustrated in the example of FIG. 2, to every component of the Internetand networks coupled to the Internet.

In the example of FIG. 2, the network access system management engine210 is coupled to the computer-readable medium 205. In a specificimplementation, the network access system management engine 210 managesthe network access systems, such as the LAN access system 115 and/or theWAN access system 130 (shown in FIG. 1). More specifically, the networkaccess system management engine 210 may implement instructions from anadministrator to control network access systems, and/or to implementnetwork policies associated with the network access systems. In animplementation, the network access system management engine 210maintains a web portal for network access. The network access systemmanagement engine 210 may further maintain a walled garden environmentassociated with the web portal. In various implementations, the networkaccess system management engine 210 instructs network access systems topermit or deny network access to specific user devices. In animplementation, the network access system management engine 210determines the identity of specific users and/or specific user devicestrying to access network resources.

In the example of FIG. 2, the network access system management datastore215 is coupled to the computer-readable medium 205. In animplementation, the network access system management datastore 215stores information associated with the network access system managementengine 210.

In the example of FIG. 2, the mobile device management interface engine220 is coupled to the computer-readable medium 205. In a specificimplementation, the mobile device management interface engine 220interfaces with mobile device management system(s). In animplementation, the mobile device management interface engine 220 canfurther instruct the network access system management engine 210 toensure user devices are adequately protected by any MDM policiesreceived from mobile device management system(s). The mobile devicemanagement interface engine 220 can also instruct the network accesssystem management engine 210 to check for updated MDM policies at aninterval, such as periodically, or at the request of an administrator.In the example of FIG. 2, the mobile device management interfacedatastore 225 is coupled to the computer-readable medium 205. In animplementation, the mobile device management interface datastore 225stores information associated with the mobile device managementinterface engine 220.

In the example of FIG. 2, the device selection engine 230 is coupled tothe computer-readable medium 205. In an implementation, the deviceselection engine 230 selects user devices to assign security profilesto. In a particular implementation, the device selection engine 230selects user devices based on input into the web portal provided by thenetwork access system management engine 210. An example of such animplementation is provided in FIG. 4. In an implementation, the deviceselection engine 230 selects user devices based on a list of issued userdevices that are known to be associated with the user. An example ofsuch an implementation is provided in FIG. 5. In the example of FIG. 2,the device selection datastore 235 is coupled to the computer-readablemedium 205. In an implementation, the device selection datastore 235stores information associated with the device selection engine 230.

In the example of FIG. 2, the security profile engine 240 is coupled tothe computer-readable medium 205. In an implementation, the securityprofile engine 240 assigns security profiles to users and/or userdevices. In an implementation, the security profile engine 240 includesa first level engine 240-1, a second level engine 240-2, through an N-thlevel engine 240-N. It is noted that the letter N designates anarbitrary number and need not be related to the letter “N” used todesignate the number of devices in FIG. 1. The first level engine 240-1can implement a first-level security profile for a user. The secondlevel engine 240-2 can implement a second-level security profile for theuser. In an implementation, the second-level profile can be associatedwith specific devices of the user. The N-th level engine 240-N canimplement an N-th level security profile for the user. In variousembodiments, the N-th-level profile can correspond to attributes of aparticular device, such as the device's operating system, softwareconfiguration, hardware configuration, network configuration, etc. In acertain implementation, any of the security profiles may be based onmobile device management information obtained through the mobile devicemanagement interface engine 220.

In the example of FIG. 2, the security profile datastore 245 is coupledto the computer-readable medium 205. In an implementation, the securityprofile datastore 245 stores information associated with the securityprofile engine 240. More specifically, in various implementations, thesecurity profile datastore 245 stores security profiles for the securityprofile engine 240.

In the example of FIG. 2, the device network configuration engine 250 iscoupled to the computer-readable medium. In a specific implementation,the device network configuration engine 250 configures particular userdevices for access to network resources. In an implementation, theconfiguration of user devices may be based on security profiles from thesecurity profile engine 240. In an implementation, the device networkconfiguration engine 250 can configure user devices based onsecond-level security profiles associated with the user devices. In aparticular implementation, the device network configuration engine 250configures a browser-based device. An example of such an implementationis shown in FIG. 8. In the example of FIG. 2, the device networkconfiguration datastore 255 is coupled to the computer-readable medium.In an implementation the device network configuration datastore 255stores information associated with the device network configurationengine 250.

FIG. 3 shows an example of a flowchart of a method 300 for performinguser-based network onboarding of user devices, in accordance with animplementation. The method 300 is discussed in conjunction with theuser-based network onboarding system 200, shown in FIG. 2. The modules305-335 are merely examples of modules in the method 300, and it isnoted in some implementations the method 300 is executed with lessmodules, more modules, or different modules than the modulesspecifically shown in FIG. 3.

At module 305, information is received about a user of a first devicerequesting access to a network. In an implementation, the network accesssystem management engine 210 may receive information about a user of afirst device requesting access to a network. The network access systemmanagement engine 210 may receive a notification from a network accesssystem (e.g., the LAN access system 115 and/or the WAN access system 130shown in FIG. 1) a user is seeking access to network resources (e.g.,the trusted resource system 125 and/or the untrusted resource system 150shown in FIG. 1).

More specifically, in an implementation, a user may enter the trustednetwork 155 (shown in FIG. 1) and seek network access. In such a case,the user may be redirected to a walled garden hosted by a web portalprovided by the network access system management engine 210. The walledgarden may capture the device identifier of the user device. If the userdevice is associated with a known user, the information about the knownuser may be provided. If the user device is not associated with a knownuser, the network access system management engine 210 may limit networkaccess to the walled garden until the information of the user has beenprovided. In an implementation, the network access system managementengine 210 provides the information about the user to the other enginesof the user-based network onboarding system 200.

At module 310, a first-level security profile based at least in part onthe information about the user is assigned to the user. In animplementation, the first level engine 240-1 assigns a first-levelsecurity profile to the user. The first-level security profile maycontain information about the user, such as the user's network logincredentials, the user's email address, the user's role (e.g., as anemployee, a contractor, a guest, etc.) in the organization administeringthe trusted network, and other information about the user. In animplementation, the first level engine 240-1 may store the first-levelprofile in the security profile datastore 245 in an entry associatedwith the user.

At module 315, a first second-level profile is assigned to a first userdevice of the user. The first second-level profile may provide firstnetwork configuration information for the first user device. In animplementation, the second level engine 240-2 may assign a firstsecond-level security profile for the first device. The firstsecond-level security profile may provide information about how thefirst user device is to be configured in order to access the network. Inan implementation, the first second-level security profile may requirethe first user device to be compliant with mobile device managementpolicies for the network. For instance, the first second-level securityprofile may require the first user device to be protected by passwordand/or biometric authentication techniques, have an updated blacklistand/or whitelist of applications and/or websites, and other protectiontechniques. The first second-level profile may further provideconfiguration parameters for the first user device to access thenetwork.

At module 320, the first user device is configured to access the networkbased on the first network configuration information. In animplementation, the device network configuration engine 250 canconfigure the first user device for network access. In someimplementations, the device network configuration engine 250 allows thefirst device to access trusted resources (e.g., the trusted resourcesystem 125 shown in FIG. 1). In various implementations, the devicenetwork configuration engine 250 allows the first device to accessuntrusted resources (e.g., the untrusted resource system 150 shown inFIG. 1). In an implementation, the first user device comprises abrowser-based device, and the device network configuration engine 250configures the first user device in accordance with a browser-basednetwork configuration technique, an example of which is shown in FIG.10.

At module 325, a second user device associated with the first-levelsecurity profile of the user is selected. In an implementation, thedevice selection engine 230 provides an identifier of a second userdevice associated with the first-level security profile. In someimplementations, the device selection engine 230 may select the seconddevice based on information the user has input into the web portal. Invarious implementations, the device selection engine 230 may select thesecond device from a list of user devices already known to be associatedwith the first-level security profile. For instance, the deviceselection engine 230 may select the second device from a list of userdevices issued to the user by a company affiliated with the user.

At module 330, a second second-level security profile is assigned to thesecond user device, where the second second-level security profileprovides second network configuration information for the second device.In an implementation, the second level engine 240-2 may assign a secondsecond-level security profile for the second device. The secondsecond-level security profile may provide information about how thesecond user device is to be configured in order to access the network.In an implementation, the second second-level security profile mayrequire the second user device to be compliant with mobile devicemanagement policies for the network. For instance, the secondsecond-level security profile may require the second user device to beprotected by password and/or biometric authentication techniques, havean updated blacklist and/or whitelist of applications and/or websites,and other protection techniques. The second second-level profile mayfurther provide configuration parameters for the second user device toaccess the network. In an implementation, the second user devicecomprises a browser-based device, and the device network configurationengine 250 configures the second user device in accordance with abrowser-based network configuration technique, an example of which isshown in FIG. 10.

It is noted that while the method 300 shows onboarding only two devicesfor illustrative simplicity, various implementations provide foronboarding an arbitrary number of user devices for a user. As a result,the modules 325, 330, and 335 may be repeated an arbitrary number oftimes for other user devices. It is also noted that while the method 300shows only two levels of security profiles being assigned to userdevices, in various implementations, an arbitrary number of levels ofsecurity profiles may be applied to onboard devices to the network.

FIG. 4 shows an example of a device selection engine 400, in accordancewith an implementation. In the example of FIG. 4, the device selectionengine 400 includes a computer-readable medium 405, a web portal requestengine 410, a device listing engine 415, and a listed device selectionengine 420. In a specific implementation, one or more of the web portalrequest engine 410, the device listing engine 415, and the listed deviceselection engine 420 includes an “engine,” as discussed herein.

In the example of FIG. 4, the computer-readable medium 405 is coupled tothe web portal request engine 410, the device listing engine 415, andthe listed device selection engine 420. In a specific implementation,the computer-readable medium 405 may include a “computer-readablemedium,” as defined in this paper.

In the example of FIG. 4, the web portal request engine 410 is coupledto the computer-readable medium 405. In an implementation, the webportal request engine 410 may provide instructions to a web portal(e.g., the web portal managed by the network access system managementengine 210) to request a list of user devices associated with a user.The web portal request engine 410 may, in an implementation, provide awebpage to the web portal. The webpage may request a user list his orher user devices.

In the example of FIG. 4, the device listing engine 415 is coupled tothe computer-readable medium 405. In a specific implementation, thedevice listing engine 415 may list the user devices of a user. Thedevice listing engine 415 may accept a user's manual input regardingidentifiers of user devices associated with the user. In animplementation, the device listing engine 415 may pre-populate the listof user devices with identifiers of devices known to be associated withthe user (e.g., devices the user has previously onboarded and/oroffboarded from the network). For instance, the device listing engine415 may pre-populate the list of user devices with identifiers ofdevices known to correspond to the user's first-level security profile.

In the example of FIG. 4, the listed device selection engine 420 iscoupled to the computer-readable medium 405. In an implementation, thelisted device selection engine 420 may facilitate selection of listeduser devices. For instance, the listed device selection engine 420 mayallow the user to select particular user devices the user wishes toonboard to network resources.

FIG. 5 shows an example of a flowchart of a method 500 for selecting adevice for network onboarding, in accordance with an implementation. Themethod 500 is discussed in conjunction with the device selection engine400, shown in FIG. 4. The modules 505-515 are merely examples of modulesin the method 500, and it is noted in some implementations the method500 is executed with less modules, more modules, or different modulesthan the modules specifically shown in FIG. 5.

At module 505, a list of user devices to associate with a first-levelsecurity policy is requested from a web portal. In a specificimplementation, the web portal request engine 410 requests a list ofuser devices from a web portal (e.g., the web portal managed by thenetwork access system management engine 210).

At block 510, a listing of one or more user devices is received inresponse to the request. In a specific implementation, the devicelisting engine 415 receives a listing of one or more user devices inresponse to the request from the web portal request engine 410. Thedevice listing engine 415 may display the listing of the one or moreuser devices in the web portal. listing of user devices may, in animplementation, include user devices the user has manually entered theinformation of The listing of user devices may, in some implementations,include user devices that known to correspond to the user's first-levelsecurity profile.

At block 515, a selection of the second device from the one or more ofthe listed user devices is received. In an implementation, the listeddevice selection engine 420 receives the selection of the second userdevice. In various implementations, the second device is selected fromthe webpage displayed on the web portal. It is noted that while themethod 500 shows selecting only a second device for illustrativesimplicity, various implementations provide for selecting an arbitrarynumber of user devices for a user. As a result, the module 515 may berepeated an arbitrary number of times for other user devices in variousimplementations.

FIG. 6 shows an example of a device selection engine 600, in accordancewith an implementation. In the example of FIG. 6, the device selectionengine 600 includes a computer-readable medium 605, an MDM systeminterface engine 610, a device listing engine 615, and a listed deviceselection engine 620. In a specific implementation, one or more of theMDM system interface engine 610, the device listing engine 615, and thelisted device selection engine 620 includes an “engine,” as discussedherein.

In the example of FIG. 6, the computer-readable medium 605 is coupled tothe MDM system interface engine 610, the device listing engine 615, andthe listed device selection engine 620. In a specific implementation,the computer-readable medium 605 may include a “computer-readablemedium,” as defined in this paper.

In the example of FIG. 6, the MDM system interface engine 610 is coupledto the computer-readable medium 605. In an implementation, the MDMsystem interface engine 610 may request from an MDM system (e.g., mobiledevice management system 135 in FIG. 1), a list of user devicesassociated with the user. For instance, in an implementation, the MDMsystem interface engine 610 may request from the MDM system a list ofuser devices that were issued to the user. The MDM system may return tothe MDM system interface engine 610 all devices issued to the user by anentity, such as the company the user is associated with. In anembodiment, the MDM system interface engine 610 may provide the list ofuser devices to a web portal (e.g., the web portal managed by thenetwork access system management engine 210 in FIG. 2).

In the example of FIG. 6, the device listing engine 615 is coupled tothe computer-readable medium 605. In a specific implementation, thedevice listing engine 615 may list the user devices of a user, based onthe information displayed in the web portal. The device listing engine615 may further accept a user's manual input regarding identifiers ofuser devices associated with the user. In an implementation, the devicelisting engine 615 may also pre-populate the list of user devices withidentifiers of devices known to be associated with the user (e.g.,devices the user has previously onboarded and/or offboarded from thenetwork). For instance, the device listing engine 615 may pre-populatethe list of user devices with identifiers of devices known to correspondto the user's first-level security profile.

In the example of FIG. 6, the listed device selection engine 620 iscoupled to the computer-readable medium 605. In an implementation, thelisted device selection engine 620 may facilitate selection of listeduser devices. For instance, the listed device selection engine 620 mayallow the user to select particular user devices the user wishes toonboard to network resources.

FIG. 7 shows an example of a flowchart of a method 700 for selecting adevice for network onboarding, in accordance with an implementation. Themethod 700 is discussed in conjunction with the device selection engine600, shown in FIG. 6. The modules 705-715 are merely examples of modulesin the method 700, and it is noted in some implementations the method700 is executed with less modules, more modules, or different modulesthan the modules specifically shown in FIG. 7.

At module 705, a list of devices associated with the user's first-levelsecurity profile is requested from an mobile device management system.In an implementation, the MDM system interface engine 610 requests froma mobile device management system (e.g., the mobile device managementsystem 135 in FIG. 1) a list of devices associated with a user'sfirst-level security profile.

At module 710, the list of user devices is received in response to therequest. In an implementation, the MDM system interface engine 610receives the list of user devices in response to the request. The listof user devices may be provided to a web portal (e.g., the web portalmanaged by the network access system management engine 210). The webportal may display the list of user devices.

At module 715, a selection of the second user device from the listed oneor more user devices is received. In an implementation, the listeddevice selection engine 620 receives the selection of the second userdevice. In various implementations, the second device is selected fromthe webpage displayed on the web portal. It is noted that while themethod 700 shows selecting only a second device for illustrativesimplicity, various implementations provide for selecting an arbitrarynumber of user devices for a user. As a result, the module 715 may berepeated an arbitrary number of times for other user devices in variousimplementations.

FIG. 8 shows an example of a device network configuration engine 800, inaccordance with an implementation.

In the example of FIG. 8, the device network configuration engine 800includes a computer-readable medium 805, a device access notificationengine 810, a browser extension engine 815, and a network connectivityfile transfer engine 820. In an implementation, one or more of thedevice access notification engine 810, the browser extension engine 815,and the network connectivity file transfer engine 820 includes an“engine,” as discussed herein.

In the example of FIG. 8, the computer-readable medium 805 is coupled tothe device access notification engine 810, the browser extension engine815, and the network connectivity file transfer engine 820. In aspecific implementation, the computer-readable medium 805 may include a“computer-readable medium,” as defined in this paper.

In the example of FIG. 8, the device access notification engine 810 iscoupled to the computer-readable medium 805. In an implementation, thedevice access notification engine 810 may monitor a network accesssystem (e.g., the LAN access system 115 and/or the WAN access system 130shown in FIG. 1) to see if a device is attempting to access networkresources (e.g., the trusted resource system 125 and/or the untrustedresource system 150 shown in FIG. 1). In an implementation, the deviceaccess notification engine 810 receives notifications from a networkaccess system management engine (e.g., the network access systemmanagement engine 210 in FIG. 2) each time a user device seeks networkaccess. The device access notification engine 810 may provide relevantnotifications to the other modules of the device network configurationengine 800.

In the example of FIG. 8, the browser extension engine 815 is coupled tothe computer-readable medium 805. In an implementation, the browserextension engine 815 provides a browser extension to a particular userdevice (e.g., one of the user devices 105 in FIG. 1) seeking to beonboarded to access network resources. A “browser extension,” as used inthis paper, may refer to anything that extends functionality of a webbrowser in some way. In various implementations, the browser extensionmay include plug-ins, add-ins, toolbars, and other elements that canexecute within the context of a web browser. In an implementation, thebrowser extension may comprise no more than a network hyperlink loadedon the web browser, or a dedicated tab of the web browser. In variousimplementations where one of the user devices 105 is a browser-baseddevice, the browser extension engine 815 may provide a browser extensionto the native browser of the browser-based device.

In the example of FIG. 8, the network connectivity file transfer engine820 is coupled to the computer-readable medium 806. In animplementation, the network connectivity file transfer engine 820transfers a network connectivity file to one of the user devices 105seeking to be onboarded. In various implementations where one of theuser devices 105 is a browser-based device, the network connectivityfile may be compatible with the native browser of the browser-baseddevice. The network connectivity file transfer engine 820 can alsoreceive notifications about whether the network connectivity file wassuccessfully loaded on the user device.

FIG. 9 shows an example of a flowchart of a method 900 for selecting adevice for network onboarding, in accordance with an implementation. Themethod 900 is discussed in conjunction with the device networkconfiguration engine 800, shown in FIG. 8. The modules 905-925 aremerely examples of modules in the method 900, and it is noted in someimplementations the method 900 is executed with less modules, moremodules, or different modules than the modules specifically shown inFIG. 9.

At block 905, a notification of a network access attempt by a userdevice is received. In an implementation, the device access notificationengine 810 receives a notification of a network access attempt by a userdevice (e.g., one of the user devices 105 in FIG. 1). In someimplementations, the notification may come from a network access system(e.g., the LAN access system 115 and/or the WAN access system 130 inFIG. 1). The notification may indicate the user device is attempting toaccess network resources (e.g., the trusted resource system 125 and/orthe untrusted resource system 150 in FIG. 1). In an implementation, thedevice access notification engine 810 provides the notification of thenetwork access attempt to the other engines of the device networkconfiguration engine 800.

At block 910, a browser extension containing a content script isprovided to the user device in response to the notification. In animplementation, the browser extension engine 815 provides a browserextension to the user device seeking network access. The browserextension may be installed into the web browser of the user device. Inan implementation where the user device comprises a browser-based userdevice, the browser extension may be loaded into the native web browserof the user device.

At block 915, a network connectivity file containing networkconfiguration information for the user device is provided to the browserextension. In an implementation, the network connectivity file transferengine 820 provides the browser extension with a network connectivityfile that contains network configuration information for the userdevice. In a specific implementation, the web browser of the user devicemay load the network connectivity file into the browser extension. In animplementation where the user device comprises a browser-based userdevice, the network connectivity file is loaded into the browserextension of the native web browser.

At block 920, a notification the network connectivity file loaded on theuser device is received. In an implementation, the network connectivityfile transfer engine receives a notification the network connectivityfile successfully loaded on the user device. The notification may comefrom the browser extension provided to the user device.

At block 925, network connectivity of the user device is configuredusing the configuration information in the network connectivity file. Inan implementation, a device network configuration engine (e.g., thedevice network configuration engine 250, shown in FIG. 2) may configurethe network connectivity of the user device based on the configurationinformation in the network connectivity file.

FIG. 10 shows an example of a screen 1000 for a user to select a devicefor network authentication, in accordance with an implementation. In theexample of FIG. 10, the screen 1000 includes an add-in tab 1005, awebpage 1010, a username 1015, an ownership listing 1020, a terms andservices checkbox 1025, and an enrollment button 1030. In the example ofFIG. 10, the add-in tab 1005 may include an add-in to a web browser. Inthis example, the web browser may include a native web browser (e.g., aChrome® browser) of a browser-based user device (e.g., a Chromebook®).The webpage 1010 may include a web portal for network access. In theexample of FIG. 10, the webpage 1010 provides a user with the ability toaccess a network. The user may have been redirected to the webpage 1010upon opening the native web browser of the user device. The username1015 may include a unique identifier of the user. the username 1015 maybe used to identify the user's first-level security profile, asdiscussed in this paper. The ownership listing 1020 may provide thedegree of network access the user may wish to have. In this example, theownership listing 1020 may include a first ownership status forcorporate-issued devices, and a second ownership status for personaldevices the user has brought to work. The terms and services checkbox1025 may indicate the user has agreed to the terms and services ofnetwork access. The enrollment button 1030 may allow the user to enrollthe user device and initiate network access.

FIG. 11 shows an example of a computer system 1100. In the example ofFIG. 11, the computer system 1100 can be a conventional computer systemthat can be used as a client computer system, such as a wireless clientor a workstation, or a server computer system. The computer system 1100includes a computer 1102, I/O devices 1104, and a display device 1106.The computer 1102 includes a processor 1108, a communications interface1110, memory 1112, display controller 1114, non-volatile storage 1116,and I/O controller 1118. The computer 1102 can be coupled to or includethe I/O devices 1104 and display device 1106.

In the example of FIG. 11, the computer 1102 interfaces to externalsystems through the communications interface 1110, which can include amodem or network interface. It will be appreciated that thecommunications interface 1110 can be considered to be part of thecomputer system 1100 or a part of the computer 1102. The communicationsinterface 1110 can be an analog modem, ISDN modem, cable modem, tokenring interface, satellite transmission interface (e.g. “direct PC”), orother interfaces for coupling a computer system to other computersystems.

In the example of FIG. 11, the processor 1108 can be, for example, aconventional microprocessor such as an Intel Pentium microprocessor orMotorola power PC microprocessor. The memory 1112 is coupled to theprocessor 1108 by a bus 1120. The memory 1112 can be Dynamic RandomAccess Memory (DRAM) and can also include Static RAM (SRAM). The bus1120 couples the processor 1108 to the memory 1112, also to thenon-volatile storage 1116, to the display controller 1114, and to theI/O controller 1118.

In the example of FIG. 11, the I/O devices 1104 can include a keyboard,disk drives, printers, a scanner, and other input and output devices,including a mouse or other pointing device. The display controller 1114can control in the conventional manner a display on the display device1106, which can be, for example, a cathode ray tube (CRT) or liquidcrystal display (LCD). The display controller 1114 and the I/Ocontroller 1118 can be implemented with conventional well knowntechnology.

In the example of FIG. 11, the non-volatile storage 1116 is often amagnetic hard disk, an optical disk, or another form of storage forlarge amounts of data. Some of this data is often written, by a directmemory access process, into memory 1112 during execution of software inthe computer 1102. One of skill in the art will immediately recognizethat the terms “machine-readable medium” or “computer-readable medium”includes any type of storage device that is accessible by the processor1108 and also encompasses a carrier wave that encodes a data signal.

In the example of FIG. 11, the computer system 1100 is one example ofmany possible computer systems which have different architectures. Forexample, personal computers based on an Intel microprocessor often havemultiple buses, one of which can be an I/O bus for the peripherals andone that directly connects the processor 1108 and the memory 1112 (oftenreferred to as a memory bus). The buses are connected together throughbridge components that perform any necessary translation due todiffering bus protocols.

Network computers are another type of computer system that can be usedin conjunction with the teachings provided herein. Network computers donot usually include a hard disk or other mass storage, and theexecutable programs are loaded from a network connection into the memory1112 for execution by the processor 1108. A Web TV system, which isknown in the art, is also considered to be a computer system, but it canlack some of the features shown in FIG. 11, such as certain input oroutput devices. A typical computer system will usually include at leasta processor, memory, and a bus coupling the memory to the processor.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations on data bitswithin a computer memory. These algorithmic descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. An algorithm is here, and generally,conceived to be a self-consistent sequence of operations leading to adesired result. The operations are those requiring physicalmanipulations of physical quantities. Usually, though not necessarily,these quantities take the form of electrical or magnetic signals capableof being stored, transferred, combined, compared, and otherwisemanipulated. It has proven convenient at times, principally for reasonsof common usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

It should be borne in mind, however, that all of these and similar termsare to be associated with the appropriate physical quantities and aremerely convenient labels applied to these quantities. Unlessspecifically stated otherwise as apparent from the following discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing” or “computing” or “calculating” or“determining” or “displaying” or the like, refer to the action andprocesses of a computer system, or similar electronic computing device,that manipulates and transforms data represented as physical(electronic) quantities within the computer system's registers andmemories into other data similarly represented as physical quantitieswithin the computer system memories or registers or other suchinformation storage, transmission or display devices.

Techniques described in this paper relate to apparatus for performingthe operations. The apparatus can be specially constructed for therequired purposes, or it can comprise a general purpose computerselectively activated or reconfigured by a computer program stored inthe computer. Such a computer program can be stored in a computerreadable storage medium, such as, but is not limited to, read-onlymemories (ROMs), random access memories (RAMs), EPROMs, EEPROMs,magnetic or optical cards, any type of disk including floppy disks,optical disks, CD-ROMs, and magnetic-optical disks, or any type of mediasuitable for storing electronic instructions, and each coupled to acomputer system bus.

For purposes of explanation, numerous specific details are set forth inorder to provide a thorough understanding of the description. It will beapparent, however, to one skilled in the art that implementations of thedisclosure can be practiced without these specific details. In someinstances, modules, structures, processes, features, and devices areshown in block diagram form in order to avoid obscuring the description.In other instances, functional block diagrams and flow diagrams areshown to represent data and logic flows. The components of blockdiagrams and flow diagrams (e.g., modules, blocks, structures, devices,features, etc.) may be variously combined, separated, removed,reordered, and replaced in a manner other than as expressly describedand depicted herein.

Reference in this specification to “one implementation”, “animplementation”, “some implementations”, “various implementations”,“certain implementations”, “other implementations”, “one series ofimplementations”, or the like signifies that a particular feature,design, structure, or characteristic described in connection with theimplementation is included in at least one implementation of thedisclosure. The appearances of, for example, the phrase “in oneimplementation” or “in an implementation” in various places in thespecification are not necessarily all referring to the sameimplementation, nor are separate or alternative implementations mutuallyexclusive of other implementations. Moreover, whether or not there isexpress reference to an “implementation” or the like, various featuresare described, which may be variously combined and included in someimplementations, but also variously omitted in other implementations.Similarly, various features are described that may be preferences orrequirements for some implementations, but not other implementations.

The language used herein has been principally selected for readabilityand instructional purposes, and it may not have been selected todelineate or circumscribe the inventive subject matter. It is thereforeintended that the scope be limited not by this detailed description, butrather by any claims that issue on an application based hereon.Accordingly, the disclosure of the implementations is intended to beillustrative, but not limiting, of the scope, which is set forth in thefollowing claims.

1. A method comprising: receiving user information of a user requestingaccess to a network with a first user device of the user; assigning afirst-level security profile to the user based on the user informationof the user; assigning a second-level security profile including firstnetwork configuration information to the first user device of the user;providing a browser extension to the first user device and causing thefirst user device to install the provided browser extension in a webbrowser of the first user device; after the second-level securityprofile being assigned to the first user device, providing a networkconnectivity file containing the first network configuration to thefirst user device and causing the first user device to load the networkconnectivity file into the browser extension installed in the webbrowser of the first user device; enabling the first user device toaccess the network through the web browser using the first networkconfiguration information included in the network connectivity fileloaded into the browser extension.